1 TADPOLE and LASSO

LASSO Analysis

1.1 Loading the libraries

library("FRESA.CAD")
library(readxl)
library(igraph)
pander::panderOptions('digits', 3)
pander::panderOptions('table.split.table', 400)
pander::panderOptions('keep.trailing.zeros',TRUE)

1.2 Loading BSWiMS Results

opo <- par(no.readonly = TRUE)

load("~/GitHub/BSWiMS/TADPOLE_BSWIMS_Results.RData")
op <- opo

2 Predicting ADAS13

Here we will diagnose ADAS13

2.1 Learning ADAS13

LASSOml <- LASSO_1SE(ADAS13~.,TADPOLECrossMRITrain)

pander::pander(t(LASSOml$selectedfeatures))
Hippocampus M_ST24TA M_ST52TA M_ST13TS M_ST36TS M_ST47TS M_ST56TS M_ST13SA M_ST55SA M_ST60SA M_ST24CV M_ST31CV M_ST32CV M_ST40CV M_ST12SV M_ST17SV M_ST30SV RD_ST24TA RD_ST31TA RD_ST32TA RD_ST35TA RD_ST40TA RD_ST52TA RD_ST56TA RD_ST57TA RD_ST47TS RD_ST57SA RD_ST40CV RD_ST52CV
prreg <- predictionStats_regression(cbind(TADPOLECrossMRITest$ADAS13,predict(LASSOml,TADPOLECrossMRITest)),"ADAS13")

ADAS13

pander::pander(prreg)
  • corci:

    cor    
    0.691 0.651 0.728
  • biasci: -0.292, -0.821 and 0.238

  • RMSEci: 7.16, 6.81 and 7.56

  • spearmanci:

    50% 2.5% 97.5%
    0.667 0.622 0.707
  • MAEci:

    50% 2.5% 97.5%
    5.57 5.25 5.91
  • pearson:

    Pearson’s product-moment correlation: predictions[, 1] and predictions[, 2]
    Test statistic df P value Alternative hypothesis cor
    25.4 702 3.56e-101 * * * two.sided 0.691
par(op)

2.2 Decorrelated

LASSOmlD <- LASSO_1SE(ADAS13~.,TADPOLECrossMRITrainD)

prreg <- predictionStats_regression(cbind(TADPOLECrossMRITestD$ADAS13,predict(LASSOmlD,TADPOLECrossMRITestD)),"ADAS13")

ADAS13

pander::pander(prreg)
  • corci:

    cor    
    0.671 0.628 0.71
  • biasci: -0.388, -0.934 and 0.158

  • RMSEci: 7.39, 7.02 and 7.80

  • spearmanci:

    50% 2.5% 97.5%
    0.661 0.617 0.701
  • MAEci:

    50% 2.5% 97.5%
    5.66 5.31 6.02
  • pearson:

    Pearson’s product-moment correlation: predictions[, 1] and predictions[, 2]
    Test statistic df P value Alternative hypothesis cor
    24 702 3.17e-93 * * * two.sided 0.671
par(op)

3 Diagnosis MCI vs AD

3.1 Learning

LASSODXml <- LASSO_1SE(DX~.,TADPOLE_DX_TRAIN,family="binomial")

prBin <- predictionStats_binary(cbind(TADPOLE_DX_TEST$DX,predict(LASSODXml,TADPOLE_DX_TEST)),"MCI vs Dementia")

MCI vs Dementia

pander::pander(prBin$aucs)
est lower upper
0.786 0.736 0.836
pander::pander(prBin$accc)
est lower upper
0.762 0.717 0.804
pander::pander(prBin$berror)
50% 2.5% 97.5%
0.41 0.366 0.453
pander::pander(prBin$sensitivity)
est lower upper
0.235 0.155 0.331
par(op)

3.1.1 Decorrelated ML

LASSODXmlD <- LASSO_1SE(DX~.,TADPOLE_DX_TRAIND,family="binomial")


prBin <- predictionStats_binary(cbind(TADPOLE_DX_TESTD$DX,predict(LASSODXmlD,TADPOLE_DX_TESTD)),"MCI vs Dementia")

MCI vs Dementia

pander::pander(prBin$aucs)
est lower upper
0.783 0.732 0.833
pander::pander(prBin$accc)
est lower upper
0.757 0.711 0.799
pander::pander(prBin$berror)
50% 2.5% 97.5%
0.427 0.384 0.468
pander::pander(prBin$sensitivity)
est lower upper
0.194 0.121 0.286
par(op)

4 Diagnosis NL vs AD

4.1 Learning


LASSODXmlNLDE <- LASSO_1SE(DX~.,TADPOLE_DX_NLDE_TRAIN,family="binomial")

prBin <- predictionStats_binary(cbind(TADPOLE_DX_NLDE_TEST$DX,predict(LASSODXmlNLDE,TADPOLE_DX_NLDE_TEST)),"NL vs Dementia")

NL vs Dementia

pander::pander(prBin$aucs)
est lower upper
0.939 0.908 0.97
pander::pander(prBin$accc)
est lower upper
0.86 0.814 0.899
pander::pander(prBin$berror)
50% 2.5% 97.5%
0.172 0.123 0.222
pander::pander(prBin$sensitivity)
est lower upper
0.714 0.614 0.801
par(op)

4.2 Decorrelated Set

4.2.1 Learning



LASSODXmlNLDED <- LASSO_1SE(DX~.,TADPOLE_DX_NLDE_TRAIND,family="binomial")

prBin <- predictionStats_binary(cbind(TADPOLE_DX_NLDE_TESTD$DX,predict(LASSODXmlNLDED,TADPOLE_DX_NLDE_TESTD)),"NL vs Dementia")

NL vs Dementia

pander::pander(prBin$aucs)
est lower upper
0.944 0.913 0.974
pander::pander(prBin$accc)
est lower upper
0.871 0.826 0.908
pander::pander(prBin$berror)
50% 2.5% 97.5%
0.165 0.117 0.215
pander::pander(prBin$sensitivity)
est lower upper
0.714 0.614 0.801
par(op)

5 Prognosis MCI to AD Conversion

5.1 Learning



bConvml <- LASSO_1SE(Surv(TimeToEvent,status)~.,TADPOLE_Conv_TRAIN)

ptestl <- predict(bConvml,TADPOLE_Conv_TEST,type="lp")
boxplot(ptestl~TADPOLE_Conv_TEST$status)

ptestr <- exp(ptestl)
boxplot(ptestr~TADPOLE_Conv_TEST$status)




perdsurv <- cbind(TADPOLE_Conv_TEST$TimeToEvent,
                  TADPOLE_Conv_TEST$status,
                  ptestl,
                  ptestr)

if (max(ptestl)>0 && min(ptestl)<0 )
{
  prSurv <- predictionStats_survival(perdsurv,"MCI to  AD Conversion")
  pander::pander(prSurv$CIRisk)
  pander::pander(prSurv$CILp)
  pander::pander(prSurv$spearmanCI)
}

prBin <- predictionStats_binary(cbind(TADPOLE_Conv_TEST$status,ptestl),"MCI to  AD Conversion")

MCI to AD Conversion

pander::pander(prBin$aucs)
est lower upper
0.834 0.784 0.885
pander::pander(prBin$CM.analysis$tab)
  Outcome + Outcome - Total
Test + 0 0 0
Test - 98 175 273
Total 98 175 273

par(op)

5.2 Decorrelated

5.2.1 Learning

bConvmlD <- LASSO_1SE(Surv(TimeToEvent,status)~.,TADPOLE_Conv_TRAIND)

ptestl <- predict(bConvmlD,TADPOLE_Conv_TESTD,type="lp")
boxplot(ptestl~TADPOLE_Conv_TEST$status)

ptestr <- exp(ptestl)

perdsurv <- cbind(TADPOLE_Conv_TEST$TimeToEvent,
                  TADPOLE_Conv_TEST$status,
                  ptestl,
                  ptestr)


if (max(ptestl)>0 && min(ptestl)<0 )
{
  prSurv <- predictionStats_survival(perdsurv,"MCI to  AD Conversion")
  pander::pander(prSurv$CIRisk)
  pander::pander(prSurv$CILp)
  pander::pander(prSurv$spearmanCI)
}

5.3

50% 2.5% 97.5%
0.372 0.187 0.54

prBin <- predictionStats_binary(cbind(TADPOLE_Conv_TESTD$status,ptestl),"MCI to  AD Conversion")

MCI to AD Conversion

pander::pander(prBin$aucs)
est lower upper
0.836 0.787 0.885
pander::pander(prBin$CM.analysis$tab)
  Outcome + Outcome - Total
Test + 16 4 20
Test - 82 171 253
Total 98 175 273

par(op)

5.3.1 The End

.